package com.leyou.item.service;

import com.leyou.common.utils.PageResult;
import com.leyou.item.dto.CartDto;
import com.leyou.item.pojo.Sku;
import com.leyou.item.pojo.Spu;
import com.leyou.item.pojo.SpuBo;
import com.leyou.item.pojo.SpuDetail;

import java.util.List;
import java.util.Map;

public interface GoodsService {

    PageResult<SpuBo> querySpuByPageAndSort(Integer page, Integer rows, Boolean saleable, String key);

    SpuDetail querySpuDetailById(Long spuId);

    List<Sku> querySkuBySpuId(Long id);


    List<Sku> querySkuByIds(List<Long> ids);

    Spu querySpuBySpuId(Long spuId);

    Sku querySkuBySkuId(Long id);

    List<Sku> queryAllSpuId();

    void save(Spu spu);

    void deleteGoods(Long spuId);

    void update(SpuBo spu);

    void onSaleGoods(Long spuId);

    void offSaleGoods(Long spuId);

    void decreaseStock(List<CartDto> cartDtos);

    void creaseStock(Map<Long, Integer> map);
}
